﻿Imports System.Resources
Imports System.Threading
Imports Biz
Imports BLL


Public Class ctrlNuevoDepartamentos
    Private _llamador As frmMainMetro
    Private _bAlta As Boolean
    Private _oDepartamento As cDepartamento
    Private _RM As ResourceManager


    Public Sub SetIdioma()

        _RM = New ResourceManager("UI.Idiomas", System.Reflection.Assembly.GetExecutingAssembly)

        btnAceptar.Text = _RM.GetString("btnAceptar")
        btnCancelar.Text = _RM.GetString("btnCancelar")

        lblTituloCodigo.Text = _RM.GetString("strCodigo") + ":"
        lblTituloDescripcion.Text = _RM.GetString("strDescripcion") + ":"

        lblTituloForm.Text = _RM.GetString("strNuevoDepartamento")

    End Sub

    Public Property Llamador() As frmMainMetro
        Get
            Return _llamador
        End Get
        Set(value As frmMainMetro)
            _llamador = value
        End Set
    End Property

    Private Sub btnCancelar_Click(sender As Object, e As EventArgs) Handles btnCancelar.Click
        _llamador.CloseModalPanel(Me, DevComponents.DotNetBar.Controls.eSlideSide.Left)
    End Sub

    Private Sub btnAceptar_Click(sender As Object, e As EventArgs) Handles btnAceptar.Click
        Dim oAux As cDepartamento


        If ValidarForm() Then
            If _bAlta Then
                oAux = New cDepartamento
                oAux.Dep_Codigo = 0
                oAux.Dep_Descrip = txtDescripcion.Text

                Try
                    GestorDepartamento.Instance.Ingresar(oAux)
                    GestorBitacora.Instance.Loguear(New cBitacora_Usuario(AppCurrentState.UsuarioLogueado.Usu_Legajo, Utils.Enumeradores.Bitacora.DepartamentoAlta))

                Catch ex As Excepciones.DepartamentoFalloAlta
                    Main.ManejarExcepcion(ex)
                Catch ex As Exception
                    Main.ManejarExcepcion(ex)
                End Try
            Else
                oAux = New cDepartamento
                oAux.Dep_Codigo = lblCodigo.Text
                oAux.Dep_Descrip = txtDescripcion.Text

                Try
                    GestorDepartamento.Instance.Editar(oAux)
                    GestorBitacora.Instance.Loguear(New cBitacora_Usuario(AppCurrentState.UsuarioLogueado.Usu_Legajo, Utils.Enumeradores.Bitacora.DepartamentoModificacion))

                Catch ex As Excepciones.DepartamentoFalloEditar
                    Main.ManejarExcepcion(ex)
                Catch ex As Exception
                    Main.ManejarExcepcion(ex)
                End Try

            End If

            _llamador.CloseModalPanel(Me, DevComponents.DotNetBar.Controls.eSlideSide.Left)
            _llamador.RefrescarGrillas()
        Else
            lblMensajes.Text = "Complete todos los datos requeridos..."
        End If

    End Sub

    Private Function ValidarForm() As Boolean
        Dim bValido As Boolean = True

        If txtDescripcion.Text.Trim = "" Then bValido = False

        ValidarForm = bValido

    End Function

    Public Sub MostrarParaAlta()
        _RM = New ResourceManager("UI.Idiomas", System.Reflection.Assembly.GetExecutingAssembly)

        _bAlta = True

        lblTituloForm.Text = _RM.GetString("strNuevoDepartamento")
        lblMensajes.Text = ""

        _oDepartamento = Nothing

        LlenarForm(Nothing)

        txtDescripcion.Focus()

    End Sub

    Public Sub MostrarParaEdicion(oDepartamento As cDepartamento)
        _RM = New ResourceManager("UI.Idiomas", System.Reflection.Assembly.GetExecutingAssembly)

        _bAlta = False

        lblTituloForm.Text = _RM.GetString("strEditarDepartamento")
        lblMensajes.Text = ""

        _oDepartamento = oDepartamento

        LlenarForm(oDepartamento)

        txtDescripcion.Focus()

    End Sub

    Private Sub LlenarForm(oAux As cDepartamento)

        If Not oAux Is Nothing Then
            lblCodigo.Text = oAux.Dep_Codigo
            txtDescripcion.Text = oAux.Dep_Descrip
        Else
            lblCodigo.Text = "(...)"
            txtDescripcion.Text = ""
        End If

    End Sub

End Class
